sunshine
管理员
管理员
  • 最后登录2023-10-30
  • 发帖数170
  • 社区居民
阅读:7703回复:0

php 连接远程mysql数据报错

楼主#
更多 发布于:2017-09-01 22:40
错误提示:Cannot connect to the database because: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file



情况说明:本地代码连接本地的数据,代码可以跑。代码上传到远程主机(阿里云虚拟主机)上,连接远程主机(阿里云虚拟主机)上的数据库也没有问题。但是当用本地的代码去连接远程主机上的数据库时,就报以上错误.
百度一下:查看到贴子上说:


你的PHP程序应该是从MySQL 4.1之前的版本升到新版MySQL库了,按照提示更新密码即可。


   链接:https://zhidao.baidu.com/question/558576227.html


    可是租的虚拟主机,数据库不允许自己去做这个操作. 就想到不可能是阿里的主机设置有问题,不过,我觉得更多的是自己有问题。哈哈
   所以,推算了一下,应该是出在了版本问题上。去阿里云上想着重置一下密码,重置密码是发现了一个问题。如下图:

图片:mysql.png



发现数据版本没有问题,就是5。 而加密模式会根据不能的PHP版本来进行不同的选择。
然后,就去查询了自己电脑的版本是php5.3 , 而主机上用的php5.2它的加密模式是16位,而5.3加密模式必须设置为41位,最后,将主机的php版本设置为5.3 ,加密模式改为41位。 上面的错误就得到解决了。
游客


返回顶部

公众号

公众号